草庐IT

C++ Qt : Check the current State of QStateMachine

全部标签

QT中QThread的各个方法,UI线程关系,事件关系详解(5)

QtGUI程序中单线程和多线程的区别Qt应用程序exec后就会生成一个线程,这个线程就是主线程,在GUI程序中也称为GUI线程。主线程也是唯一允许创建QApplication或QCoreAppliation对象,比并且可以对创建的对象调用exec()的线程,从而进入事件循环。 在只有主线程即单线程的情况中,每一个事件的发生都需要进入事件循环进行等待,如有在某一步计算量比较大,则会一直占用CPU不放,导致其它操作无法完成,界面陷入冻结状态,例如像下面的情况: 在主界面中有两个按钮,其中一个按钮用于一个非常大的计算并在结束的显示结果,另外一个按钮用于显示文本“hello,world!”。代码如下:

QT中QThread的各个方法,UI线程关系,事件关系详解(5)

QtGUI程序中单线程和多线程的区别Qt应用程序exec后就会生成一个线程,这个线程就是主线程,在GUI程序中也称为GUI线程。主线程也是唯一允许创建QApplication或QCoreAppliation对象,比并且可以对创建的对象调用exec()的线程,从而进入事件循环。 在只有主线程即单线程的情况中,每一个事件的发生都需要进入事件循环进行等待,如有在某一步计算量比较大,则会一直占用CPU不放,导致其它操作无法完成,界面陷入冻结状态,例如像下面的情况: 在主界面中有两个按钮,其中一个按钮用于一个非常大的计算并在结束的显示结果,另外一个按钮用于显示文本“hello,world!”。代码如下:

QT中级(1)QTableView自定义委托(一)实现QSpinBox、QDoubleSpinBox委托

同系列文章QT中级(1)QTableView自定义委托(一)实现QSpinBox、QDoubleSpinBox委托QT中级(2)QTableView自定义委托(二)实现QProgressBar委托QT中级(3)QTableView自定义委托(三)实现QCheckBox委托并且将QCheckBox居中QT中级(4)QTableView自定义委托(四)实现QDateTimeEdit、QDateEdit控件QT高级(1)QTableView自定义委托集合,一个类实现若干委托1写在前面的话我们在之前写的《QT(7)-初识委托》文章末尾提到,“使用一个类继承QStyledItemDelegate实现常用

QT中级(1)QTableView自定义委托(一)实现QSpinBox、QDoubleSpinBox委托

同系列文章QT中级(1)QTableView自定义委托(一)实现QSpinBox、QDoubleSpinBox委托QT中级(2)QTableView自定义委托(二)实现QProgressBar委托QT中级(3)QTableView自定义委托(三)实现QCheckBox委托并且将QCheckBox居中QT中级(4)QTableView自定义委托(四)实现QDateTimeEdit、QDateEdit控件QT高级(1)QTableView自定义委托集合,一个类实现若干委托1写在前面的话我们在之前写的《QT(7)-初识委托》文章末尾提到,“使用一个类继承QStyledItemDelegate实现常用

QT实现多级下拉列表导航菜单,可折叠(QTreewidget实现)

目录创建多级列表在ui中拖入一个QTreewidget控件。双击该控件,打开编辑树窗口部件。​编辑​编辑进行列表控件设置:在项目前添加图标:效果:QT实现多级下拉列表,可折叠做项目的时候需要实现一个可折叠的多级下拉列表,用QTreewidget就可以实现,而且直接在ui文件里面操作,不需要代码。创建多级列表在ui中拖入一个QTreewidget控件。双击该控件,打开编辑树窗口部件。进行列表控件设置:在列下,点击加号可以添加列,减号就是删除列,一般只需要一列。 在项目下,需要增加子项目就按照下图指示操作。点击添加子项按钮,就可以出现分支。多尝试几次就可以做出自己想要的列表了。在项目前添加图标:先

QT中的combo box控件的使用

本文将详细介绍QT中的combobox控件的使用,包括调整下拉框默认显示,为控件添加内容,获取下拉框中内容的总数,获取当前下拉框显示的内容以及该内容所在的第几行,清除下拉框中的内容。1.为控件添加内容用代码的方法添加:ui->comboBox->addItem("");//添加一个内容ui->comboBox->addItems();//添加多个内容用UI界面的方法添加:直接从UI界面添加可以直接左键双击控件即可添加。2.调整默认显示用代码的方法:ui->comboBox->setCurrentIndex(2);//控件中的第一个元素的序号是0,代码中的2即默认显示控件中的序号为3的元素用UI

Qt:基本介绍

Qt是什么?Qt是一个跨平台的C++框架(C++库),主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序,也可以开发不带界面的命令行(CommandUserInterface,CUI)程序。Qt是跨平台的,支持很多操作系统,包括电脑系统Windows、Linux、Unix,智能手机系统Android、iOS、WinPhone,嵌入式系统QNX、VxWorks等等。Qt虽然是使用的C++语言,但不是使用的标准C++,Qt进行了一定程度的“扩展”。虽然如此,但C++仍然是基础。目前最新的版本是Qt5。Qt5还包含了很多小版本,其中推荐Qt5.6或Qt5.9,这两个

Qt QObject详解

1.概述QObject类是所以Qt类的基类,也是Qt对象模型的核心。这个模型中的核心特性就是能让对象键无缝通信的信号和槽的机制。我们可以使用connect()函数将一个信号连接到一个槽上,也可以使用disconnect()删除这个连接。为了防止无休止的的信号通知,还可以使用blockSignals()来临时阻塞信号。而connectNotify()和disconnectNotify()两个函数可以让我们能够跟踪一个对象上信号的连接变化。QObject对象使用对象树的方式来组织它们自己。所以,当你以另一个对象作为父来创建一个QObject对象时,该对象会自动的将它自己添加的父级的孩子列表中,父级

QT使用MQTT协议连接ONENET云平台:智能家居PC客户端开发笔记-2 项目开发

这篇文章主要是分享QT智能家居项目的代码在我看来,QTMQTT的使用主要难点就是对于环境的搭建,在我们把环境搭建完之后,接下来就是传统手艺了,我们只要知道相应的库函数,调用它,就能实现我们所需要的功能了。所以,在这里我也只是简单的分享一下我写的第一版代码,希望能够对各位提供到帮助。若是有什么疑问,或者有什么更好的想法,也可以联系我,我尽量帮你们解决。我们主要是使用MQTT协议以及ONENET云来实现数据从硬件端到PC端的传输以及控制指令的下发。mainwindows.h代码#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include#include"QMqtt/

【修改完Qt的UI界面再运行却不能实时更新的解决方法】

目录一、现象描述二、原因分析三、解决方法目录一、现象描述如博客标题所述。例如:当我们在ui界面中添加了某个控件(如按钮)之后,右键项目名称点击运行(对应绿色右三角),显示的界面却还是原来未修改的界面。二、原因分析这个问题在网上已经有很详细的解释了。具体地,首先需要明白,在我们更改完ui界面、点击运行之后将会重新产生新的ui_XX.h文件,这个文件产生于构建目录之下。而当前项目在运行时获取ui_XX.h文件的路径是项目目录,当这两个目录不同时,就会出现修改失败的现象。三、解决方法我本人的构建目录(build-XXX-Desktop_Qt_5_9_0_MinGW_32bit-Debug)和项目目录